package top.lixunda.ecommerce.server.user.api.entity.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import top.lixunda.common.validate.annotation.XumNotNull;

/**
 * 保存消息使用DTO，更多时候是内部调用使用
 *
 * @author lixunda
 * @version time:2020/4/12 0:39
 */
@ApiModel(value = "保存消息使用DTO", description = "更多时候是内部调用使用")
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class MessageInsertDTO {

    /**
     * 消息接收用户编号
     */
    @XumNotNull
    @ApiModelProperty("消息接收用户编号")
    private Integer userId;

    /**
     * 消息接收用户类型
     */
    @XumNotNull
    @ApiModelProperty("消息接收用户类型")
    private String userType;

    /**
     * 消息接收用户名称
     */
    @XumNotNull
    @ApiModelProperty("消息接收用户名称")
    private String userName;

    /**
     * 消息类型，如系统通知
     */
    @XumNotNull
    @ApiModelProperty("消息类型，如系统通知")
    private String messageType;

    /**
     * 消息标题
     */
    @XumNotNull
    @ApiModelProperty("消息标题")
    private String messageTitle;

    /**
     * 链接页面
     */
    @ApiModelProperty("链接页面")
    private String messageUrl;

    /**
     * 消息内容
     */
    @XumNotNull
    @ApiModelProperty("消息内容")
    private String messageContent;

    /**
     * 任务编号
     */
    @ApiModelProperty("任务编号")
    private Integer taskId;

    /**
     * 个人任务编号
     */
    @ApiModelProperty("个人任务编号")
    private Integer taskItemId;

    /**
     * 业务编号
     */
    @ApiModelProperty("业务编号")
    private Integer businessId;

    /**
     * 自定义参数1
     */
    @ApiModelProperty("自定义参数1")
    private String param1;

    /**
     * 自定义参数2
     */
    @ApiModelProperty("自定义参数2")
    private String param2;

    /**
     * 自定义参数3
     */
    @ApiModelProperty("自定义参数3")
    private String param3;
}
